home *** CD-ROM | disk | FTP | other *** search
- Reporter Control
- Version 1.03
- By
- Robert Wittig (76135,2105)
-
- Table of Contents
- -----------------
- I. Introduction
- II. Pricing/Ordering
- III. Included Files
- IV. Documentation
- V. Concerning placement of text output
- VI. What's new in this version
- VII. Final Message
-
-
- I. Introduction
- ---------------
-
- This is the beta release of the Reporter component. This component assists
- the programmer in creating reports through the use of the following:
-
- 1) Measurements specified in Dots, Inches or Millimeters.
-
- The Reporter allows you to set the report's default unit to
- either printer dots (default), inches or millimeters. This
- allows you to (in most cases) completely ignore the printer's
- dots/inch. For direct output through the Reporter's canvas,
- you need to specify positioning in dots. ConvertWidth and
- ConvertHeight functions are included to aid you in converting
- between inches/millimeters and dots in these cases.
-
-
- 2) Bands - Full Page, Header, Group, Detail, and Footer.
-
- The Reporter provides support for "bands". A band is a portion
- of the page set aside for a specific function. Each band has a
- printing event associated with it. The Reporter is responsible
- for calling the print events in the proper order, freeing the
- programmer from coordinating the output of headers, footers and
- details and from deciding when a new page is required. Using the
- Reporter, a simple multi-page report could be printed out with
- only one output call! (in the detail band)
-
-
- 3) Support for memo output.
-
- You may output a memo from tMemo, tDBMemo, tMemoField or pChar.
- You can constrain the width and height of the memo, or you can
- constrain only the width and let the Reporter determine the
- height. The Reporter also allows you to "stretch" a band's height
- to accomodate oversized memos.
-
-
- 4) Native support for tGraphic, tChartFX, tImage and tGraphicField.
-
- The Reporter handles the details of positioning these graphic
- objects on the page, as well as scaling them to the dimensions
- you specify.
-
-
- 5) Named font styles.
-
- The Reporter allows you to assign names to a font (color,size,
- style,typeface) style. Then, later in the report, you can change
- the font to one of your pre-defined styles by referring to its
- name.
-
- 6) Reporter Canvas
-
- The Reporter provides access to the printed page through its
- Canvas property. Through this property, you may use any output
- call that applies to a tCanvas object.
-
-
- 7) Miscellaneous features.
-
- The Reporter has several other features that assist the programmer
- in creating a report, including the ability to change page
- orientation between pages, changing the report's header and footer
- "on the fly" and alignment of output (text or graphic) anywhere
- within a band through the use of positioning constants.
-
- I will continue adding features to the Reporter as the need develops.
- Also, I will be adding a wrapper component that will allow you to set up a
- report and preview the output while in Delphi design mode.
-
-
- II. Pricing/Ordering
- ---------------------
-
- The Reporter is being released as shareware. It will only run while Delphi
- is running. If you attempt to use it without Delphi, you will be informed
- that you can only use it while Delphi is running. If you continue to try to
- use it, you will get a GPF (because the Reporter is not created if Delphi
- is not running).
-
- With that out of the way, on to pricing. If you wish to distribute reports
- using the Reporter, you may register the Reporter for $30 + $5 shipping/
- handling ($15 outside North America-sorry for the extra charge, but shipping
- prices are fairly high outside North America). You may also choose to
- register and receive the documentation/source code only through email, for
- a flat $30 charge. With your registration, you will receive:
-
- 1) A E-Mailed copy of the current Reporter along with full source code,
- 2) Any updates made to the Reporter (including any tools developed to
- facilitate the use of the Reporter) for a period of one year dating
- from the time of your registration.
- 3) Printed documentation and Reporter/source code on disk when the
- Reporter is released in a non-beta format (if you chose that payment
- option).
-
- As a registered user, you can:
-
- 1) Distribute programs that use the Reporter without paying any royalties.
- 2) Modify the source code for your own use (though this tends to negate
- support for the Reporter, the more you modify).
-
- As a registered user, you cannot:
-
- 1) Distribute the source code, either in its original state, or
- in modified form. (Although you are free to borrow the concepts
- it embodies)
- 2) Resell the Reporter to a third party.
-
-
- The registration fee is (as stated above) $30 with an optional $5 shipping/
- handling ($15 outside North America). You may either mail this to me at the
- following address or register on CompuServe through one of the following
- SWREG IDs. To register on CompuServe, GO SWREG and choose Register
- Shareware from the list of options. If you register through the mail, please
- include your name, company name (optional), street address, city, state and
- zip. If you do not include these, you will not receive the Reporter. If you
- send a check, please make it payable to Robert Wittig.
-
- Robert Wittig
- PO BOX 8052
- Fort Smith, AR 72902-8052
-
- SWREG ID#5830 Reporter with hard-copy documentation/source code on disk.
- SWREG ID#5832 Reporter without hard-copy documentation/source code on disk.
-
-
- III. Included Files
- --------------------
-
- PSTATUS.DFM A simple print status dialog form that informs the user of the
- PSTATUS.PAS current status of the report and allows the report to be aborted.
-
- REPORTS.INT The interface and compiled unit form of the Reporter.
- REPORTS.DCU
-
- README.TXT This file.
-
- The sample reports assume that you have a database alias
- DBDEMOS defined, and that it points to the sample database
- files installed with Delphi. If, for some reason, you don't
- have this alias you will need to change the DatabaseName
- property of each table and query used in the sample reports.
- ------------------------------------------------------------
-
- MASTRPT.DPR These files compose the sample M.A.S.T. report. This report
- MASTRPT.RES mimics the report included in the MASTAPP demo that ships
- MASTRPT1.PAS with Delphi. Text output is highlighted in this example.
- MASTRPT1.DFM
-
- SUMMRPT.DPR These files compose the Summary report. This report demon-
- SUMMRPT.RES strates how to use groups along with detail bands, as well
- SUMMRPT1.PAS as giving an example of the use of a report variable.
- SUMMRPT1.DFM
-
- CHRTRPT.DPR These files compose the ChartFX report. This report demon-
- CHRTRPT.RES strates how to output a ChartFX on the page.
- CHRTRPT1.PAS
- CHRTRPT1.DFM
-
- BOXRPT.DPR These files compose the Header/Orientation report. This report
- BOXRPT.RES demonstrates using the canvas for graphic output, changing the
- BOXRPT1.PAS page orientation between pages of a report, as well as changing
- BOXRPT1.DFM the report's header across pages.
-
- FISHRPT.DPR These files compose the FishFacts report. This report high-
- FISHRPT.RES lights the use of the Reporter to output graphics stored in
- FISHRPT1.PAS a database. It also demonstrates how to let a band's height
- FISHRPT1.DFM stretch to accomodate a large memo, while still preventing the
- band from being split across pages.
-
- To run any of these demos, just open the appropriate project file and run
- it (Run/Run from the main menu or F9).
-
-
- IV. Documentation
- ------------------
-
- Since the Reporter is still in the beta stage, the documentation is limited
- to this file, comments in Reports.Int (which are fairly extensive) and
- comments in the sample reports. More formal documentation will be forth-
- coming as the Reporter nears completion and the chance of major changes to
- the code/operation is removed. If you need help deciphering a Reporter
- function or figuring out how to do something, check the sample reports or
- send me a message/email on CompuServe (76135,2105).
-
-
- V. Concerning placement of text output
- ---------------------------------------
-
- Currently, the Reporter outputs text so that the upper left corner of the
- text is aligned with the current print head position. Under most circum-
- stances, this does not matter. However, if you wish to mix font sizes on
- the same line, you will need to do some extra maneuvering to ensure that the
- bottom of the text lines up rather that the top. The MastApp demo contains
- a sample of this type of positioning. A future enhancement already being
- planned is to allow you to specify whether text aligns upper left or bottom
- left to the print head.
-
-
- VI. What's new in this version
- -------------------------------
-
- This version adds the following:
-
- 1) Reporter.PreferredUnit
- By setting PreferredUnit, the user can specify print output
- positioning without needing to convert to printer dots.
- Reporter.PreferredUnit := puInches;
- Reporter.TabTo ( 2.0 );
- For example, the above statements cause the Reporter to position
- the print head 2 inches from the left margin.
-
- 2) Memo output.
- The Reporter now has procedures (DirectMemoOut, MemoOut, and
- DBMemoOut) that allow you to print memos. DirectMemoOut takes
- a null-terminated string as an argument. MemoOut takes either
- a tMemo or tDBMemo component as an argument. DBMemoOut takes
- a tMemoField as an argument. You can specify a box to print the
- memo in and the Reporter will clip output beyond the bounds of the
- box. Alternatively, you can set the width of the box only, and
- the Reporter will determine the height of the box. See FishRpt
- for an example of memo output.
-
- 3) Reporter.StretchBand
- By setting StretchBand true or false (default), you can tell
- the Reporter whether or not to allow a band's height to be
- dynamic. This property was added mostly in support of memos.
- Quite often, you'll have memos that aren't the same size. You
- usually want memos to print with the rest of the detail, as
- opposed to printing across pages. However, you don't want to set
- the band height to accomodate the height of the largest memo,
- because you'll have a lot of wasted space. So, I added the
- StretchBand property. If you set this to true, the Reporter will
- call the InitBand procedure (if you've defined it) each time the
- band prints. This way, the Reporter will know how tall the band
- is and can use only as much space as is needed, while also
- preventing the band from breaking across pages. The FishRpt demo
- provides an example of the use of StretchBand.
-
-
- The following bugs have been fixed:
-
- 1) A bug in the way TabTo and MoveY has been fixed. They had been
- moving the print head relative to the non-printable area, rather
- than the margins. That has now been fixed.
-
-
- VII. Final Message
- -------------------
-
- I would very much appreciate any comments/gripes/suggestions you have
- regarding the Reporter. If you detect a bug, or something doesn't work
- the way you think it should, just let me know. I hope you enjoy using the
- Reporter and it helps take a load off your shoulders.
-
-
- - Robert Wittig
- 76135,2105
-